草庐IT

python - shell脚本检查python版本

全部标签

ruby - 我如何检查字符串中是否存在某个单词,如果不存在,则在 ruby​​ 中返回 false?

假设我有一个字符串str="Thingstodo:eatandsleep."如何检查"do:"是否存在于str中,不区分大小写? 最佳答案 像这样:puts"yes"ifstr=~/do:/i要返回一个bool值(大概是从一个方法中),将匹配结果与nil进行比较:defhas_do(str)(str=~/do:/i)!=nilend或者,如果你不喜欢!=nil那么你可以使用!~而不是=~并否定结果:defhas_do(str)notstr!~/do:/iend但我真的不喜欢双重否定......

ruby - 如何检查 Chef 中是否存在文件夹?

这是我的代码:if!::File.exist?("#{node['iis']['home']}\\backup\\BkpB4Chef")windows_batch"BackupIISConfig"docode它总是说文件存在并执行循环。 最佳答案 你应该使用Chefguards这里。守卫指定条件执行,但仍将资源插入资源集合。在您的示例和jtblin答案中,资源永远不会添加到集合中(我稍后会进一步解释)。下面是一些可以帮助您入门的工作代码:windows_batch"BackupIISConfig"docode%Q|#{node['i

ruby - rails rspec - 如何检查模型常量?

我该如何做:it{shouldhave_constant(:FIXED_LIST)}在我的模型(事件记录)中,我有FIXED_LIST='AString'它不是数据库属性或方法,我无法使用responds_to或has_attribute对其进行测试(它们失败了)。我可以用什么来检查它。-顺便说一句,我安装了shoulda-matchers。 最佳答案 根据DavidChelimsky的回答,我通过稍微修改他的代码使它起作用。在文件spec/support/utilities.rb(或spec/support中的其他文件)中,您可以

ruby-on-rails - Rspec:检查数组是否包含包含属性的对象

我有一个充满对象的json数组。my_array=[{id=>6,name=>"bob"},{id=>5,name=>"jim"},{id=>2,name=>"steve"}]我需要查看数组是否包含一个对象,该对象包含设置为5的属性“id”。“name”属性未知。我如何在rspec中执行此操作?我知道如果我有name属性我知道我可以这样做:my_array.shouldinclude({:id=>5,:name=>"jim"}) 最佳答案 expect(myArray.find{|item|item[:id]==5}).to_not

ruby - 如何在 Ruby 中触发 shell 脚本并在后台(异步)运行?

我有一个名为test.sh的shell脚本。如何从Ruby触发test.sh?我希望test.sh作为后台进程运行,这在Ruby中意味着它是一个异步调用。STDERR和STDOUT也需要写入特定的文件。有什么想法吗? 最佳答案 @TanzeebKhalili的回答有效,但您可能会考虑Kernel.spawn(),它不等待进程返回:pid=spawn("./test.sh")Process.detach(pid)请注意,根据文档,无论您使用spawn()还是手动使用fork()和system(),您都应该在退出之前获取PID和Proc

ruby - 如何更改 Textmate 使用的 Ruby 版本?

编辑:我找到了解决方案,您可以在下面的回答中阅读。我在SnowLeopard上使用Textmate,并安装了ruby​​1.9。问题是出于某种原因Textmate使用Ruby1.8.2但是当我使用IRB或为shell运行ruby​​脚本时,会使用正确版本的Ruby(1.9)。如何配置Textmate使其使用1.9.2?我一直在谷歌搜索,显然你必须使用T_RUBY变量和textmate,并在OSX中设置一些环境变量,但到目前为止,我发现的方法都不适合我。有人可以逐步解决这个问题吗?更新:我已经尝试在textmate中将ruby​​二进制路径添加到TM_RUBY,但出现此错误:>Can't

ruby - 为什么我无法确定我的 ruby​​ 安装版本?

当我运行ruby-version时,我得到:ruby1.8.7(2012-02-08patchlevel358)[universal-darwin11.0]-e:1:undefinedlocalvariableormethod`rsion'formain:Object(NameError)有什么问题吗? 最佳答案 使用ruby​​-v或ruby​​--version。它正在将-version解析为rsion。这两个都行。计算破折号的数量:ruby-vruby--version当您提供带有“version”的单个破折号时,Ruby会看

ruby-on-rails - 使用旧版本的 Rake

我有Rake版本0.9.1,但我需要为一个项目使用0.8.7,我相当确定我安装了这两个版本,但它始终默认使用0.9.1。有没有办法指定使用哪个版本的Rake?我正在尝试运行这个:rakedb:dropdb:createdb:migratedb:seed我得到这个错误:您已经激活了rake0.9.1,但是您的Gemfile需要rake0.8.7。考虑使用bundleexec。 最佳答案 gem搜索(或列表)rake,应该会告诉您安装了哪些版本。您可以调用带有括号中的特定版本号的rake下划线。$rake_0.7.3_这是gem打包二进

ruby - OSX Lion 上的默认 Ruby 版本?还是 1.8.x 或 1.9.x?

OSXLion上的默认Ruby版本是什么?还是1.8.x或1.9.x? 最佳答案 在Lion的预发布版中:ruby-vruby1.8.7(2010-01-10patchlevel249)[universal-darwin11.0] 关于ruby-OSXLion上的默认Ruby版本?还是1.8.x或1.9.x?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5280384/

ruby - 如何在安装的不同版本的 gem 之间切换?

我在本地机器上安装了三个版本的Rack(rack(1.4.1,1.3.6,1.3.5))。对于某些gem(比如Cucumber),需要低版本的rack才能激活?我已经尝试过bundle但没有什么用。执行时,cucumber仍将使用系统版本为1.4.1的已激活Rack。Bundle指定应安装哪个gem但不确保将激活哪个gem。如何激活特定版本的rack? 最佳答案 您可以在项目的gemfile中指定一个版本gem"rack","1.3.5"由matt指出:使用Gemfile中指定的gem:bundleexeccucumber